﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"aaf7c0c0-5a5d-4d0b-a798-31f89bb8bc34\", \"Представление\":\"НеПрименяется\"}")]
		НеПрименяется = 0,//Не применяется
		[EnumMember(Value = "{\"Ссылка\":\"11cb2ad9-4fbe-4648-a1e7-5e749a52f495\", \"Представление\":\"СниженнаяНалоговаяСтавка\"}")]
		СниженнаяНалоговаяСтавка = 1,//Сниженная налоговая ставка
		[EnumMember(Value = "{\"Ссылка\":\"a4330511-27ef-4f48-86da-87fa51531ce6\", \"Представление\":\"УменьшениеСуммыНалогаВПроцентах\"}")]
		УменьшениеСуммыНалогаВПроцентах = 2,//Уменьшение суммы налога в процентах
		[EnumMember(Value = "{\"Ссылка\":\"8a33b440-3927-495f-8d2d-c320072b20b1\", \"Представление\":\"УменьшениеСуммыНалогаНаСумму\"}")]
		УменьшениеСуммыНалогаНаСумму = 3,//Уменьшение суммы налога на сумму
	}
	public static partial class ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid НеПрименяется = new Guid("f83198a7-b89b-34bc-4d0b-5a5daaf7c0c0");//Не применяется
		public static readonly Guid СниженнаяНалоговаяСтавка = new Guid("745ee7a1-529a-95f4-4648-4fbe11cb2ad9");//Сниженная налоговая ставка
		public static readonly Guid УменьшениеСуммыНалогаВПроцентах = new Guid("fa87da86-5351-e61c-4f48-27efa4330511");//Уменьшение суммы налога в процентах
		public static readonly Guid УменьшениеСуммыНалогаНаСумму = new Guid("20c32d8d-2b07-b120-495f-39278a33b440");//Уменьшение суммы налога на сумму
		public static ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу Получить(this ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу Получить(this ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу Значение, Guid Ссылка)
		{
			if(Ссылка == НеПрименяется)
			{
				return ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.НеПрименяется;
			}
			else if(Ссылка == СниженнаяНалоговаяСтавка)
			{
				return ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.СниженнаяНалоговаяСтавка;
			}
			else if(Ссылка == УменьшениеСуммыНалогаВПроцентах)
			{
				return ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.УменьшениеСуммыНалогаВПроцентах;
			}
			else if(Ссылка == УменьшениеСуммыНалогаНаСумму)
			{
				return ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.УменьшениеСуммыНалогаНаСумму;
			}
			return ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу Значение)
		{
			switch (Значение)
			{
				case ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.НеПрименяется: return НеПрименяется;
				case ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.СниженнаяНалоговаяСтавка: return СниженнаяНалоговаяСтавка;
				case ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.УменьшениеСуммыНалогаВПроцентах: return УменьшениеСуммыНалогаВПроцентах;
				case ВидНалоговойЛьготыПоСуммеНалогаПоЗемельномуНалогу.УменьшениеСуммыНалогаНаСумму: return УменьшениеСуммыНалогаНаСумму;
			}
			return Guid.Empty;
		}
	}
}